import axios from 'axios'
import Assert from '../common/Assert.js'

export const FyService = class FyService {
    static fyService = null
    requestUrl = 'http://localhost/fys'

    static getInstance() {
        if (this.fyService == null) {
            this.fyService = new FyService()
        }
        return this.fyService
    }

    /**
     * 分页查询
     * @param params
     */
    getByPage(params) {
        return axios.get(`${this.requestUrl}/page`, {
            params
        })
    }

    /**
     * 根据id查询
     * @param id
     */
    getById(id) {
        return axios.get(`${this.requestUrl}/${id}`)
    }

    /**\
     * 检查的方法
     * @param fy
     */
    check(fy) {
        if (!Assert.isNotNull(fy.caseid, '请选择案件')) {
            return false
        }
        if (!Assert.isNotNull(fy.flow, '请输入审判程序')) {
            return false
        }
        if (!Assert.isNotNull(fy.spjg, '请输入审判机关')) {
            return false
        }
        //校验天数
        if (Assert.isNotNull(fy.lntx)) {
            if (!Assert.isLessZero(fy.lntx, '请输入有效的提醒时间')) {
                return false
            }
        }
        if (Assert.isNotNull(fy.kttx)) {
            if (!Assert.isLessZero(fy.kttx, '请输入有效的提醒时间')) {
                return false
            }
        }
        if (Assert.isNotNull(fy.xptx)) {
            if (!Assert.isLessZero(fy.xptx, '请输入有效的提醒时间')) {
                return false
            }
        }
        if (Assert.isNotNull(fy.sstx)) {
            if (!Assert.isLessZero(fy.sstx, '请输入有效的提醒时间')) {
                return false
            }
        }
        //校验手机号
        if (Assert.isNotNull(fy.fgtel)) {
            if (!Assert.validPhone(fy.fgtel)) {
                return false
            }
        }
        if (Assert.isNotNull(fy.sjtel)) {
            if (!Assert.validPhone(fy.sjtel)) {
                return false
            }
        }

        return true
    }

    /**
     * 保存的方法
     * @param fy
     */
    save(fy) {
        return axios.post(this.requestUrl,fy)
    }

    /**
     * 修改的方法
     * @param fy
     */
    update(fy){
        return axios.put(this.requestUrl,fy)
    }

    /**
     * 根据id删除
     * @param id
     */
    removeById(id){
        return axios.delete(`${this.requestUrl}/${id}`)
    }
}